Two stage coding method

ABSTRACT

Errors which arise in recording and reproducing data in a recording material are corrected with the use of an error correction code such as an RS (Reed-Solomon) code, and a two stage C 2  and C 1  coding method is conducted at an interval of repetition of a combination of [k 2  /n 2  ] and [k 2  /n 2  ]+1 on digital data having a two dimensional arrangement of k 1  in the first direction and k 2  in the second direction, whereby burst error correction ability is enhanced by the enhancement of error correction capacity.

TECHNICAL FIELD

The present invention relates to a two stage coding method having a high burst error correction ability and also a random error correction ability equivalent to that of the prior art when an error correction code such as a Reed Solomon code (hereinafter referred to as "RS code") is used in order to correct data errors which arise in reproducing data recorded in a recording material such as a magnetic disk.

BACKGROUND ART

Generally, in recording and reproducing data into and from a recording material such as a magnetic disk a data error may arise dependent on the state of the recording material. A data error may be a burst error caused by a signal drop out .[.on.]. .Iadd.or .Iaddend.a random error caused by a deterioration in SN ratio. In order to correct these errors a two stage coded error correction code is used. As an example, a two stage code using RS codes on a GF .[.(2⁸).]. (.Iadd.2^(q)) .Iaddend.where q=8 will be considered. A two stage encoder is shown in FIG. 3. In FIG. 3, reference numeral 1 designates an input terminal, reference numeral 2 designates a C₂ encoder, reference numeral 3 designates an interleaving circuit, reference numeral 4 designates a C₁ encoder, the reference numeral 5 designates an output terminal. First of all, C₂ encoding is performed on the original data, interleaving is executed thereto, and thereafter C₁ encoding is conducted, and the resulting code signal is output to the output terminal. A two stage decoder is shown in FIG. 4. In FIG. 4, reference numeral 6 designates an input terminal, reference numeral 7 designates a C₁ decoder, reference numeral 8 designates a deinterleaving circuit, reference numeral 9 designates a C₂ decoder, and reference numeral 10 designates an output terminal. In this decoder deinterleaving is executed after the C₁ decoding, and thereafter C₂ decoding is conducted. There is a prior art two stage coding method which, assuming that data obtained by arranging .[.k₁ ×9.]. .Iadd.k₁ ×q .Iaddend.digits in a first direction and k₂ digits (k₁ <k₂) in a second direction as shown in FIG. 5 is arranged into 8 .[.data.]. .Iadd.digit .Iaddend.words in the first direction, consists of adding a first check code of n₂ -k₁ digits, and thereafter adding a second check code of n₁ -n₂ digits as shown in FIG. 2, (n₂, k₁) RS code is used as the C₂ code, and (n₁, n₂) RS code is used as the C₁ code.

A specific coding example will be described with reference to FIGS. 5 and 2. When it is established that k₁ =32, k₂ =128, n₁ =40, n₂ =36, and h₁ =h₂ = . . . =h₃₅ =h=3, the data region comprising the data and the first check code becomes data of n₂ ×k₂ =4608 digits as shown in FIG. 5, and when a₁ is set to 1, a₂ to a₃₆ become as follows: ##EQU1## and C₂ encoding is conducted on the data corresponding to the a₁ -th, a₂ -th, . . . , a₃₂ -th data .Iadd.selected .Iaddend.with use of the following generation polynomial of C₂ code ##EQU2## where α is a root of a primary polynomial (for example, such as x⁸ +x⁴ +x³ +x² +1 on GF (2⁸)). The generated check codes are arranged at the positions corresponding to the a₃₃ -th, a₃₄ -th, . . . , a₃₆ -th data. Next, a₁ is set as follows:

    a.sub.1 =a.sub.1 +n.sub.2 =a.sub.1 +36,

and similarly check codes are added to the data successively. Herein, if the calculated result of a₂ to a₃₆ exceeds n₂ ×k₂ =4608, a number obtained by subtracting 4608 therefrom is made the result. The encoding is repeated k₂ times thereby to conclude the C₂ encoding.

Next, C₁ encoding is conducted on the data of n₂ digits in each column arranged in the first direction as shown in FIG. 2 with the use of the following generation polynomial of C₁ code ##EQU3## The generated check code is added to the end portion of the data and the encoding is repeated k₂ times. In the recording of the data onto the recording material data of n₁ =40 digits arranged in the first direction is sent out k₂ times successively. In the reproduction of the same the sent out data are arranged in a column in the first direction by 40 digits successively.

In the prior art two stage coding method with such a construction, the C₂ code is concerned with burst error correction ability, and the C₁ and C₂ codes are concerned with random error correction ability. In the stage of conducting C₂ encoding the h must be made large in order to enhance the burst error correction ability, and h is set as follows:

    h=[k.sub.2 /n.sub.2 ]=[128/36]=3

.Iadd.where [A] denotes an integer which does not exceed A .Iaddend.The C₂ codes are gathered at the right end portion of the data region in FIG. 5, and the C₂ and the C₁ code are arranged adjacent to each other in the first direction subsequent to the data of k₁ =32 digits when the C₁ encoding is completed.

The prior art two stage coding method is constructed in such a manner, and the error correction ability by one code amounts to n₂ -k₁ digits when forfeiture correction is conducted by the C₂ decoding. Accordingly, the burst error correction ability becomes as follows for data of n₂ ×k₂ =4608 digits comprising all the data and the C₂ code

    (n.sub.2 -k.sub.1)×n.sub.2 ×h=432,

but h becomes as follows:

    h=[k.sub.2 /n.sub.2 ]=[128/36]=3<128/36,

and k₂ /n₂ does not equal an integer, thereby resulting in deterioration of error correction capability.

DISCLOSURE OF THE INVENTION

The present invention is directed to solve the problems pointed out above and an object is to provide a two stage coding method in which the above-described deterioration in a burst error correction ability is improved and a higher burst error correction ability than that of the prior art device is obtained.

According to the coding method of the present invention, assuming that data of k₁ ×8×k₂ digits are arranged in a matrix of k₁ ×8 digits in a first direction and k₂ digits(s) in a second direction and the data is divided into words of 8 digit(s) in the first direction, in conducting C₂ encoding by taking out n₂ data words from the data of .[.n₂ .]. .Iadd.n₂ -k₁ .Iaddend.words in the first direction and k₂ words in the second direction with no duplication of data in either of the first and second directions, a C₂ code of .[.code.]. length .[.n₂ .]. .Iadd.n₂ -k₁ .Iaddend.is produced by establishing a₁ at an arbitrary data number word, and establishing h₁, h₂, . . . , h_(n2-1) such that they become a repetition of a combination satisfying the condition that [k.sub. 2 /n₂ ] and [k₂ /n₂ ]+1 may be

    [k.sub.2 /n.sub.2 ]×1.sub.1 +([k.sub.2 /n.sub.2 ]+1)×1.sub.2 ≦k.sub.2

(herein, l₁ +l₂ =n₂ (l₁, 1₂ : integer) and a₂ to a_(n2) exceeding n₂ ×k₂ are obtained by subtracting n₂ ×k₂ therefrom) for a₂ to a_(n2) as in the following: ##EQU4## when numbering is conducted successively in the first direction on the data of n₂ words in the first direction and k₂ words in the second direction, and this is repeated k₂ words in the second direction, and thereafter C₁ encoding of each n₂ ×q digits in the first direction .[.into a.]..Iadd., forming an C₁ C₂ encoded data matrix having a total .Iaddend.code length n₁ is conducted.

In the two stage coding method of the present invention, C₂ codes are constructed to be effective for error correction at the portion of n₂ -k₁ in the first direction and at the portion of k₂ in the second direction against the data obtained by arranging k₁ digits in the first direction and k₂ digits in the second direction, as shown in FIG. 1. According to the present invention, the burst error correction ability against the data of n₂ ×k₂ =4608 digits comprising all the data, and the C₂ codes becomes

    (n.sub.2 -k.sub.1)×n.sub.2 ×(h.sub.4 +h.sub.B)/2=504.

and this exceeds 432 which is the burst error correction ability of the prior art device against the same number of data and the same number of check codes.

In this way, it is possible to conduct a two stage coding having a higher burst error correction ability than that of the prior art, and having a random error correction ability equivalent to that of the prior art due to the C₁ and C₂ codes.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing a data arrangement for conducting a C₂ encoding method as one embodiment of the present invention;

FIG. 2 is a diagram showing a data arrangement for conducting a prior art two stage coding method and a C₁ encoding method as an embodiment of the present invention;

FIG. 3 is a block diagram showing a two stage encoding circuit;

FIG. 4 is a block diagram showing a two stage decoding circuit; and

FIG. 5 is a diagram showing a data arrangement for conducting the C₂ encoding method of the prior art two stage coding method.

BEST MODES OF EMBODYING THE INVENTION

Embodiments of the present invention will be described with reference to the drawings. In FIGS. 1 and 2, the constants are established that q=8, k₁ =32, k₂ =128, n₁ =40, n₂ =36, and data are divided into words of 8 digits in the first direction. FIG. 1 shows a C₂ encoding method. Data of k₁ ×k₂ =4096 data words are arranged sequentially in the first direction and in a matrix of k₁ =32 words in the first direction and k₂ =128 words in the second direction, and when h_(2i-1) and h_(2i) are set as follows

    h.sub.2i-1 =h.sub.A =]k.sub.2 /n.sub.2 ]=3

    h.sub.2i =h.sub.B =[k.sub.2 /n.sub.2 ]+1=4,

(i: integer, 1≦i≦(n₂ -1)/2)

and a₁ is set 1, a₂ to a₃₆ become ##EQU5## and, C₂ encoding is performed on the data corresponding to the a₁ -th, a₂ -th, . . . , and a₃₂ -th data with the use of the generation polynomial of the C₂ code ##EQU6## Herein, α is a root of a primary polynomial. The generated check codes are arranged at the positions corresponding to the a₃₃ -th, a₃₄ -th, . . . , a₃₆ -th data. Next, a₁ is set as follows

    a.sub.1 =a.sub.1 +n.sub.2 =a.sub.1 +36

and similarly inspection codes are added to the data successively. a₂ to a₃₆ exceeding n₂ ×k₂ =4608 are made by subtracting 4608 therefrom. When this encoding operation is repeated k₂ times the C₂ encoding is completed.

Next, C₁ encoding is performed on the data of n₂ words in each column arranged in the first direction as shown in FIG. 2 with the use of the generation polynomial of C₁ code ##EQU7## The generated check codes are added to the data, and the encoding is repeated k₂ times. The recording of the data on a recording material is conducted by sending out data of n₁ =40 words arranged in the first direction successively k₂ times. The data format reproduction is conducted by arranging the sent out data by 40 words successively in a column in the first direction.

In the two stage coding method of the present invention, the C₂ code is concerned with burst error correction ability and both C₁ and C₂ codes are concerned with random error correction ability. In conducting the C₂ encoding, C₂ codes of n₂ -k₁ in the first direction and k₂ in the second direction can be used effectively for the error correction of the data arranged in a matrix of k₁ in the first direction and k₂ in the second direction.

In the above-illustrated embodiment a repetition pattern of (h_(A), h_(B)) is adopted for h₁, h₂, . . . , h_(n2-1), but other combinations using h_(A) and h_(B) such as (h_(B), h_(A)) or (h_(A), h_(B), h_(B)) can be used if they comply with the following conditions

    h.sub.A ×l.sub.1 +h.sub.B ×l.sub.2 ≦k.sub.2

    l.sub.1 +l.sub.2 =n.sub.2

Furthermore, an RS code on GF (2^(q)) is used as an error correction code, but another code such as a BCH code can be used as an error correction code. Furthermore, the number of data, the construction of information lengths in the first and second directions, and the C₂ and C₁ code lengths can be arbitrarily established. Furthermore, in the illustrated embodiment the region occupied by the check codes of the C₂ code and the C₁ code is shown in FIG. 2, but this occupied region can be arbitrarily established by establishing a₁ at an arbitrary number.

Furthermore, it is possible to add the additional information of k₃ ×q digits in the second direction k₂ times precedent to the C₁ encoding, and thereafter to conduct C₁ encoding on GF (2^(q)) having the (n₁ +k₃)×q digits in the first direction, and to conduct a coding k₂ times repeatedly in the second direction.

APPLICABILITY TO THE INDUSTRY

The present invention is applicable not only to a magnetic disk apparatus but also to an optical recording and reproducing apparatus, and an optical magnetic recording and reproducing apparatus. 

We claim:
 1. A two stage coding system for encoding digital information arranged in a matrix of k₁ ×q digits in a first direction, and k₂ digits in a second direction orthogonal to the first direction, whereinK₁, q, and k₂ are integers, K₁ <k₂ ; q=the number of digits per data word, and K₁, K₂ =the number of data words in said first and second directions respectively, comprising: C₂ encoder means for encoding said digital information with a C₂ code on a Galois Field GF (2^(q)), including means for .[.numbering.]. .Iadd.selecting .Iaddend.data words in said matrix diagonally from an arbitrary data word a₁ and establishing a₂ to a_(n2), wherein n₂ is the length of .[.code.]. .Iadd.the .Iaddend.C₂ encoded data, such that ##EQU8## wherein h₁ to h_(n2-1) satisfy the following

    h.sub.2i-1 =[K.sub.2 /n.sub.2 ]

    h.sub.2i =[k.sub.2 /n.sub.2 ]+1 1≦i≦(n.sub.2 -1)/.Badd.2

.Iadd.said C₂ encode means including .Iaddend.means for C₂ encoding said .[.numbered.]. .Iadd.selected .Iaddend.data words, and means for adding the obtained C₂ code to an end of said matrix in said first direction; and C₁ encoder means for encoding said C₂ encoded matrix with a C₁ code having a .Iadd.predetermined .Iaddend.length .[.of n₁ .]. on a GF (2^(q)) for each row of data words in said first direction, and adding the obtained C₁ code to an end of said matrix in said first direction. .Iadd.
 2. The two stage coding system of claim 1 wherein said means for C₂ encoding further encodes said selected data words in each said diagonal;said means for adding a C₂ code to the end of each said diagonal to form a C₂ code field at the end of said matrix in said first direction. .Iaddend. .Iadd.3. The two stage coding system of claim 2 wherein said C₂ encoder means subtracts n₂ ×k₂ from any initially calculated value of a₂ to a_(n2) that exceed n₂ ×k₂ to select data words in said matrix diagonally. .Iaddend. .Iadd.4. The two stage coding system of claim 1 wherein said C₂ encoder means subtracts n₂ ×k₂ from any initially calculated value of a₂ to a_(n2) that exceed n₂ ×k₂ to select data words in said matrix diagonally. .Iaddend. .Iadd.5. The two stage coding system of claim 1 wherein additional data added to said rows of data words in said first direction prior to encoding of said C₂ encoded matrix with a C₁ code is also encoded with this C₁ code by said C₁ encoder means. .Iaddend. .Iadd.6. A two stage coding system for encoding digital information arranged in an information matrix of k₁ ×q digits in a first direction, and k₂ digits in a second direction orthogonal to the first direction, wherein k₁, q, and k₂ are integers, k₁ <k₂ ; q=the number of digits per data word, and k₁, k₂ =the number of data words in said first and second directions respectively, comprising: C₂ encoder means for encoding said digital information with a C₂ code on a Galois field GF(2²), said C₂ encoder means selecting data words in said information matrix diagonally from an arbitrary data word a₁ and including a₂ to a_(n2), wherein n₂ is the length of the C₂ encoded data, such that

    a.sub.2 =a.sub.1 +n.sub.2 ×h.sub.1 +1

    a.sub.3 =a.sub.2 +n.sub.2 ×h.sub.2 +1

    :

    a.sub.k1 =a.sub.k1-1 +n.sub.2 ×h.sub.k1-1 +1

    :

    a.sub.n2 =a.sub.n2-1 +n.sub.2 ×h.sub.n2-1 +1,

h₁ to h_(2n-1) each being selected from one of h_(A) and h_(B), wherein,

    h.sub.A =[k.sub.2 /n.sub.2 ],

    h.sub.B =[k.sub.2 /n.sub.2 ]+1, and

    h.sub.A ×l.sub.1 +h.sub.B ×l.sub.2 ≦k.sub.2, where

    l.sub.1 +l.sub.2 =n.sub.2

said C₂ encoder means forming said C₂ code from said selected data words and adding the obtained C₂ code to an end of said information matrix in said first direction thereby forming a C₂ encoded matrix; and C₁ encoder means for encoding each line in said first direction of said C₂ encoded matrix with a C₁ code having a predetermined length on a GF(2^(q)), and adding the obtained C₁ code to an end of each said line of said matrix in said first direction to form a C₂ C₁ encoded matrix. .Iaddend. .Iadd.7. The two stage coding system of claim 6 wherein a group of two or more adjacent lines h₁, h₂, . . . utilize a repetition pattern having at least one of each of h_(A) and h_(B) contained therein, said selection of data words a₁ to a_(n) by said C₂ encoder means utilizing said repetition pattern for selection of all said data words (a) in said information matrix. .Iaddend. .Iadd.8. The two stage coding system of claim 7 wherein said repetition pattern is selected from the group consisting of h_(A), h_(B) ; h_(B), h_(A) ; and h_(A), h_(B), h_(B). .Iaddend. .Iadd.9. The two stage coding system of claim 6 wherein:

    h.sub.2i-1 =h.sub.A,

    h.sub.2i =h.sub.B,

where 1<i<(n₂ -1)/2. .Iaddend. .Iadd.10. The two stage coding system of claim 6 wherein:

    h.sub.2i-1 =h.sub.B,

    h.sub.2i =h.sub.A,

where 1<i<(n₂ -1)/2. .Iaddend. .Iadd.11. The two stage coding system of claim 6 wherein said C₂ encoder means repeatedly selects data words in said information matrix from an arbitrary data word a₁ and including a₂ to a_(n2), said C₂ encoder means repeatedly forming said C₂ code and adding said C₂ to the end of the matrix, each repetition starting from a different arbitrary data word a₁. .Iaddend. .Iadd.12. The two stage coding system of claim 11 wherein said C₂ encoder means selects k₂ arbitrary data words from which to perform selecting, forming and adding to thereby form a complete C₂ encoded matrix. .Iaddend. .Iadd.13. The two stage coding system of claim 6 wherein said means for C₂ encoding further encodes said selected data words in each said diagonal; said means for adding a C₂ code to the end of each said diagonal to form a C₂ code field at the end of said information matrix in said first direction. .Iaddend. .Iadd.14. The two stage coding system of claim 6 wherein additional data added to said rows of data words in said first direction prior to encoding of said C₂ encoded matrix with a C₁ code is also encoded with this C₁ code by said C₁ encoder means to thereby form said C₂ C₁ encoded matrix. .Iaddend. .Iadd.15. The two stage coding system of claim 14 wherein the length of said C₂ C₁ encoded data matrix in the first direction is (n₁ +k₃)×q digits, where k₃ is an integer. .Iaddend. .Iadd.16. The two stage coding system of claim 6 wherein said C₂ encoder means subtracts n₂ ×k₂ from any initially calculated value of a₂ to a_(n2) that exceed n₂ ×k₂ to select data words in said matrix diagonally. .Iaddend. .Iadd.17. The two stage coding system of claim 6 wherein the length of said C₂ C₁ encoded data matrix in the first direction is n₁ ×q digits. .Iaddend. .Iadd.18. A two stage coding system for encoding digital information arranged in an information matrix of k₁ ×q digits in a first direction, and k₂ digits in a second direction orthogonal to the first direction, wherein k₁, q, and k₂ are integers, k₁ <k_(q) ; q=the number of digits per data word, and k₁, k₂ =the number of data words in said first and second directions respectively, said system further single stage coding additional information of k₃ ×q digits in the first direction, where k₃ is an integer and k₂ digits in the second direction, comprising: C₂ encoder means for encoding said digital information with a C₂ code on a Galois field GF(2^(q)), said C₂ encoder means selecting data words in said information matrix diagonally from an arbitrary data word a₁ and including a₂ to a_(n2), wherein n₂ is the length of the C₂ encoded data, such that

    a.sub.2 =a.sub.1 +n.sub.2 ×h.sub.1 +1

    a.sub.3 =a.sub.2 +n.sub.2 ×h.sub.2 +1

    :

    a.sub.k1 =a.sub.k1-1 +n.sub.2 ×h.sub.k1-1 +1

    :

    a.sub.n2 =a.sub.n2-1 +n.sub.2 ×h.sub.n2-1 +1

h₁ to h_(n2-1) each being selected from one of h_(A) and h_(B), wherein,

    h.sub.A =[k.sub.2 /n.sub.2 ],

    h.sub.B =[k.sub.2 /n.sub.2 ]+1, and

    h.sub.A ×l.sub.1 +h.sub.B ×l.sub.2 ≦k.sub.2, where

    l.sub.1 +l.sub.2 =n.sub.2

said C₂ encoder means forming said C₂ code from said selected data words and adding the obtained C₂ code to an end of said information matrix in said first direction to form a C₂ encoded matrix; and said additional data of k₃ words and said C₂ encoded matrix collectively forming an added data matrix having k₂ lines; C₁ encoder means for encoding each of said k₂ lines extending in said first direction of said added data matrix with a C₁ code having a predetermined length on a GF(2^(q)), and adding the obtained C₁ code to an end of each said line of said added data matrix in said first direction to form a C₂ C₁ encoded matrix. .Iaddend. .Iadd.19. The two stage coding system of claim 18 wherein a group of two or more adjacent lines h₁, h₂, . . . utilize a repetition pattern having at least one of each of h_(A) and h_(B) contained therein, said selection of data words a₁ to a_(n) by said C₂ encoder means utilizing said repetition pattern for selection of all said data words (a) in said information matrix. .Iaddend. .Iadd.20. The two stage coding system of claim 19 wherein said repetition pattern is selected from the group consisting of h_(A), h_(B) ; h_(B), h_(A) ; and h_(A), h_(B), h_(B). .Iaddend. .Iadd.21. The two stage coding system of claim 18 wherein:

    h.sub.2i-1 =h.sub.A,

    h.sub.2i =h.sub.B,

where 1<i<(n₂ -1)/2. .Iaddend. .Iadd.22. The two stage coding system of claim 18 wherein:

    h.sub.2i-1 =h.sub.B,

    h.sub.2i =h.sub.A,

where 1<i<(n₂ -1)/2. .Iaddend. .Iadd.23. The two stage coding system of claim 18 wherein said C₂ encoder means repeatedly selects data words in said information matrix from an arbitrary data word a₁ and including a₂ to a_(n2), said C₂ encoder means repeatedly forming said C₂ code and adding said C₂ to the end of the matrix, each repetition starting from a different arbitrary data word a₁. .Iaddend. .Iadd.24. The two stage coding system of claim 23 wherein said C₂ encoder means selects k₂ arbitrary data words from which to perform selecting, forming and adding to thereby form a complete C₂ encoded matrix. .Iaddend. .Iadd.25. The two stage coding system of claim 18 wherein said means for C₂ encoding further encodes said selected data words in each said diagonal; said means for adding a C₂ code to the end of each said diagonal to form a C₂ code field at the end of said information matrix in said first direction. .Iaddend. .Iadd.26. The two stage coding system of claim 18 wherein said C₂ encoder means subtracts n₂ ×k₂ from any initially calculated value of a₂ to a_(n2) that exceed n₂ ×k₂ to select data words in said information matrix diagonally. .Iaddend. .Iadd.27. The two stage coding system of claim 18 wherein the length of said C₂ C₁ encoded matrix in the first direction is (n₁ +k₃)×q digits. .Iaddend. 